1. Field of the Invention
The present invention relates generally to computer security, and more particularly but not exclusively to methods and apparatus for providing secure computer communications.
2. Description of the Background Art
Secure Socket Layer (SSL) is a well known protocol for establishing an encrypted communication link between a web server and a web browser. A web server in compliance with SSL includes an SSL certificate issued by a trusted third party also known as a “certification authority.” The SSL certificate serves as proof of the web server's identity and legitimacy. To initiate encrypted communication with the web server, a web browser retrieves the SSL certificate and performs an SSL chain verification process to authenticate the certificate. The verification process involves verifying that the web server is what it purports to be and that the web server is certified by the certification authority as legitimate (i.e., safe to communicate with). If the SSL certificate passes the verification process, the web browser will perform encrypted communication with the web server. In a nutshell, the web browser uses the web server's public key to encrypt data to be transmitted to the web server. The web server receives the encrypted data and decrypts it using the web server's private key. This provides a relatively secure way for the web browser to submit sensitive, confidential information (e.g., credit card information, personal information) to the web server.
If the SSL certificate does not pass the verification process, the web browser will so inform the user by displaying a warning page. However, the web browser gives the user the option to continue establishing encrypted communication with the web server even when the web server's SSL certificate does not pass verification. This is a dangerous situation because some users may continue the encrypted communication anyways for a variety of reasons, such as thinking that the problem is caused by a self-signed certificate that did not import into the local certificate store, social engineering of a cyber criminal to trick the user to accept an unverified SSL certificate, lack of general knowledge of cryptography, and no appreciation of the consequences of accepting an unverified SSL certificate.